package com.itcam.kuangstudy.reflection_;

/**
 * Author:Cammy.Wu
 * Date:2024-05-13
 * Description:
 */

/**
 *  类加载 ——> 类链接 ——> 类初始化
 * （Load） ——> (Link) ——> Initialize
 * Load：将类的class文件读入内存，并创建要给java.lang.Class对象，此过程由类加载器完成。
 * Link：将类的二进制数据合并到JRE中
 * Initialize：JVM负责对类进行初始化
 *
 */

public class ReflectionDemo04 {
    public static void main(String[] args) {
        A a = new A();
        System.out.println(A.m);

        /**
         * 1.加载到内容，会产生一个类对应class对象
         * 2.链接，链接结束后 m = 0
         * 3.初始化
         *      <clinit>(){
         *          System.out.println("A类静态代码初始化");
         *          m = 300;
         *          m = 100;
         *      }
         *
         *  m = 100
         */
    }
}

class A {
    static {
        System.out.println("A类静态代码初始化");
        m = 300;
    }

    static int m = 100;

    public A() {
        System.out.println("A类的无参构造初始化");
    }
}
